#ifndef _RTOS_APP_H
#define _RTOS_APP_H

#include "stm32f10x.h"
#include "FreeRTOS.h"
#include "task.h"
//#include ""
#include <stdio.h>
//#include "Fun_Inc.h"
#include "Led.h"
#include "lvgl.h"
#include "lv_port_disp.h"
#include "lv_port_indev.h"
#include "LVGL_APP.h"
#include "PasswordMag.h"

/******************************************/
/*               extern val                    */
/******************************************/
//extern TaskHandle_t  Pswd_Open_InputPswd_Handle;
//extern TaskHandle_t  Pswd_Open_MatchPswd_Handle;

/******************************************/
/*               tedef                    */
/******************************************/
typedef struct  Pswd_Open_args_tydef
{
    lv_obj_t * prev_page;
    lv_obj_t * base_page;
    char *    pswd_buff;
    /* data */
} Pswd_Open_args_t;

typedef struct   RTOS_PswdMeun_Add_New_PWD_Args_Tydef
{
    lv_obj_t * prev_page;
    char *    pswd_buff;
    uint8_t*  Pri_levl;   
    /* data */
}Add_New_PWD_Args_t;

typedef enum 
{
    task_list =0,
    Pswd_Open,
    SelePswdLvel_TASK ,
    InputAdmainPwsd_TASK,
    CreateNewPwsd_TASK,
    CreateNewPwsd_SetNumb_TASK,
    CP_InputAdninPswd_TASK,
    CP_InputNumb_TASK,
    CP_InputNewPswd_TASK

}PswdMeun_Task_List_t;

typedef struct  Add_New_PWD_Queue_Args_Tydef
{
    PswdMeun_Task_List_t task;
    TaskHandle_t *         TaskHandle;   
     char *           PrintInfo;
}PswdMeun_Queue_Args_t;




//void RTOS_Start(void);
void lvgl_demo(void); 
void RTOS_Pswd_Open(lv_obj_t * Prev_Page);
void RTOS_PswdMeun_Add_New_PWD(lv_obj_t * Prev_Pasge);
void RTOS_PswdMeun_Change_PWD(lv_obj_t * Prev_page);
#endif
